home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
QRZ! Ham Radio 8
/
QRZ Ham Radio Callsign Database - Volume 8.iso
/
pc
/
files
/
mac
/
proj_a1.hqx
/
Project Mac - A1
/
code2.bas
< prev
next >
Wrap
BASIC Source File
|
1987-11-14
|
3KB
|
203 lines
PRINT "Software by: Bob Giese, N5KXN"
PRINT " P. O. Box 7681"
PRINT " Houston, TX 77270"
COMMON L$,R,K
L$="QWERTYUIOPASDFGHJKLZXCVBNMAEIOST"
P6=0
S$=""
WAVE 0,SIN
CLEAR
PRINT
PRINT "Control this program from the CODE pulldown menu."
FOR I=1 TO 500:F=SIN(I):NEXT I 'Wait a bit
F=770 ' FREQUENCY IN Hz.
V=127 ' relative volume
W1=13
D1=20/W1
D3=1.3*D1
D=D1/1000 : D2=3*D1
P2=D1
P3=3*P2
MENU 6,0,1,"CODE"
MENU 6,1,1,"5 letter words"
MENU 6,2,1,"File input"
MENU 6,3,1,"User input"
MENU 6,4,1,"Change speed"
MENU 6,5,1,"Change tone"
'MENU 6,6,1,"Change volume"
start:
CLS
MENU ON
ON MENU GOSUB react
loop:
GOTO loop
react:
IF MENU(0)<>6 THEN RETURN
ON MENU(1) GOSUB random,file,words,speed,tone
RETURN
words:
MENU
PRINT "ENTER WORDS TO SEND";
INPUT S$
go:
FOR I=1 TO LEN(S$)
A$=UCASE$(MID$(S$,I,1) )
GOSUB asciitocode
PRINT " ";A$;" ";B$
FOR J=1 TO LEN(B$)
IF MID$(B$,J,1) ="." THEN GOSUB dot
IF MID$(B$,J,1) ="-" THEN GOSUB dash
IF MID$(B$,J,1)=" " THEN GOSUB space
NEXT J
NEXT I
RETURN
dot:
SOUND F,P2,V,0 ' BEEP P1,P2
SOUND 99999!,D1,0,0 'WAIT D1
RETURN
dash:
SOUND F,P3,V,0 ' BEEP P1,P3
SOUND 99999!,D1,0,0 'WAIT D1
RETURN
space:
SOUND 99999!,D3,0,0 'WAIT D3
RETURN
asciitocode:
IF A$="A" THEN B$=".- "
IF A$="B" THEN B$="-... "
IF A$="E" THEN B$=". "
IF A$="N" THEN B$="-. "
IF A$="S" THEN B$="... "
IF A$="O" THEN B$="--- "
IF A$="C" THEN B$="-.-. "
IF A$="D" THEN B$="-.. "
IF A$="F" THEN B$="..-. "
IF A$="G" THEN B$="--. "
IF A$="H" THEN B$=".... "
IF A$="I" THEN B$=".. "
IF A$="J" THEN B$=".--- "
IF A$="K" THEN B$="-.- "
IF A$="L" THEN B$=".-.. "
IF A$="M" THEN B$="-- "
IF A$="P" THEN B$=".--. "
IF A$="Q" THEN B$="--.- "
IF A$="R" THEN B$=".-. "
IF A$="V" THEN B$="...- "
IF A$="U" THEN B$="..- "
IF A$="W" THEN B$=".-- "
IF A$="X" THEN B$="-..- "
IF A$="Y" THEN B$="-.-- "
IF A$="Z" THEN B$="--.. "
IF A$=" " THEN B$=" "
IF A$="T" THEN B$="- "
IF A$="1" THEN B$=".---- "
IF A$="2" THEN B$="..--- "
IF A$="3" THEN B$="...-- "
IF A$="4" THEN B$="....- "
IF A$="5" THEN B$="..... "
IF A$="6" THEN B$="-.... "
IF A$="7" THEN B$="--... "
IF A$="8" THEN B$="---.. "
IF A$="9" THEN B$="----. "
IF A$="0" THEN B$="----- "
IF A$="?" THEN B$="..--.."
IF A$="." THEN B$=".-.-.-"
IF A$="<" THEN B$="--..--"
IF A$="," THEN B$="--..--"
IF A$="-" THEN B$="-...- "
IF A$="/" THEN B$="-..-. "
SOUND 99999!,D1,0,0 'WAIT D3' IF W1<15 THEN WAIT (15-W1)*(1000/W1)
RETURN
random:
MENU ' RANDOM SEQUENCE GENERATOR
L$="QWERTYUIOPASDFGHJKLZXCVBNMAEIOST"
S$=""
K=INT(TIMER/3) MOD 47
FOR I=1 TO K
J=RND(1)
NEXT I
FOR I=1 TO 5
R=RND(1)
P=INT(R*32+1)
S$=S$+MID$(L$,P,1)
NEXT I
PRINT : PRINT : PRINT
GOSUB go
IF MENU(1) <> 1 THEN GOTO start
GOTO random
speed:
MENU
CLS
PRINT "OLD SPEED IS ";W1; " WORDS PER MINUTE."
PRINT "ENTER WORDS PER MINUTE(1-99)";
INPUT W1
IF W1<1 THEN speed
IF W1>100 THEN speed
D1=20/W1
D3=1.3*D1
D2=3*D1
P1 = F
P2=D1
P3=3*P2
CLS
RETURN
tone:
MENU
CLS
PRINT "OLD TONE IS";F;
PRINT "ENTER NEW TONE";
INPUT F
IF F<10 THEN tone
IF F>5000 THEN tone
CLS
RETURN
volume:
MENU ' volume menu not working
CLS
PRINT "OLD VOLUME IS";V;
PRINT "ENTER NEW VOLUME";
INPUT V
IF V<1 THEN volume
IF V>255 THEN volume
CLS
RETURN
restart:
CLS
PRINT"File ";F$;" does not exist."
GOTO pfile
file:
MENU
CLS
pfile:
PRINT "ENTER FILE NAME";
INPUT F$
IF LEN(F$)<1 THEN GOTO start
ON ERROR GOTO restart
OPEN F$ FOR INPUT AS #1
WHILE NOT EOF(1)
INPUT #1,S$
GOSUB go
WEND
CLOSE #1
RETURN
END